home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / gina15.zip / CHANGES-1.2 < prev    next >
Text File  |  1992-02-27  |  5KB  |  137 lines

  1. Changes to GINA++ since version 1.1
  2. ===================================
  3.  
  4. - A workaround for a possible type conflict with the type name Boolean
  5.   has been implemented. If a type clash occurs (for example with ONTOS),
  6.   programms must first include Gina/Gina.h and must then undefine the name
  7.   Boolean:
  8.  
  9.   #include <Gina/Gina.h>
  10.   #undef Boolean
  11.  
  12.   #include <Ontos.h>
  13.  
  14.   The type Boolean has been renamed by a preprocessor macro to XBoolean.
  15.  
  16. - Form constraint resources now work with the GnScrolledText widget.
  17.  
  18. - GnRadioGroup and GnToggleGroup now support the withFrame and labelString
  19.   resources.
  20.  
  21. - GnWidget::create() now returns the created C++ widget. Programmers can now
  22.   write things like
  23.  
  24.      w.create((new GnFrame)->create(parent, "frame"), "w");
  25.  
  26.   which must formerly be written as
  27.  
  28.      GnFrame *frame = new GnFrame;
  29.      frame->create(parent, "frame");
  30.      w.create(frame, "w");
  31.  
  32. - The missing implementation of GnSelection::add(int,Boolean,Boolean) was
  33.   added.
  34.  
  35. - width, height, x, y, and sensitive resources are now set for the
  36.   group_widget instead of the primary widget.
  37.  
  38. - A bug with wrong clipping regions for expose events in GnView had been
  39.   fixed.
  40.  
  41. - Functions for drawing strings aligned in rectangles have been added for
  42.   GnView. String could be aligned left, right, or centered and could be
  43.   drawn normal or reverse. These function are protected members and may only
  44.   be accessed by the view's draw() function.
  45.  
  46.   protected:  // glyphs & strings
  47.     void DrawGlyphs(GC gc, int x, int y, char* str, unsigned int length);
  48.     void DrawGlyphs(int x, int y, char* str, unsigned int length)
  49.     { DrawGlyphs(default_text_gc, x, y, str, length); }
  50.  
  51.     void DrawStringAligned(GC gc, char *string, unsigned int length,
  52.                int x, int y, Dimension width, Dimension height,
  53.                unsigned char alignment = XmALIGNMENT_CENTER,
  54.                Dimension offset = 0);
  55.     void DrawStringAligned(char *string, unsigned int length, int x, int y,
  56.                Dimension width, Dimension height,
  57.                unsigned char alignment = XmALIGNMENT_CENTER,
  58.                Dimension offset = 0)
  59.     { DrawStringAligned(default_text_gc, string, length,
  60.                 x, y, width, height,
  61.                 alignment, offset); }
  62.  
  63. - The drawing functions for GnView now use the view's true foreground and
  64.   background colors instead of black & white. These colors are accessible
  65.   by the members foreground and background.
  66.  
  67. - The default font of GnView may be accessed by the members
  68.   
  69.     protected: // Fonts
  70.       char *font_name;
  71.       Font font;
  72.       XFontStruct *font_info;
  73.  
  74.   These members are undefined before the first expose event has been received.
  75.   They are always defined when GINA++ calls the view's draw() function.
  76.  
  77. - Two graphics contexts for string drawing operations were added for GnView.
  78.  
  79.     protected: // graphics contexts
  80.       GC default_text_gc;
  81.       GC text_gc;
  82.  
  83.   The default_text_gc is private to GINA++, The text_gc may be used by the
  84.   programmer. 
  85.  
  86.   These members are undefined before the first expose event has been received.
  87.   They are always defined when GINA++ calls the view's draw() function.
  88.  
  89.   These gcs are preset so the programmer can call any string drawing function
  90.   of GnView without setting them.
  91.  
  92.   The string drawing functions are overloaded to use either the
  93.   default_text_gc or they may be called with an explicit gc.
  94.  
  95. - The funtion GnWidget::IsManaged() has been added.
  96.  
  97. - The functions GnWidget::Realize(), GnWidget::Manage() and
  98.   GnWidget::Unmanage() were added.
  99.   They are a replacement for the the functions GnWidget::realize(),
  100.   GnWidget::manage() and GnWidget::unmanage(), which will become obsolete
  101.   in the future !
  102.  
  103. - Class GnSelection: The functions AllItems(), SelectedItems(),
  104.   UnselectedItems(), SensitiveItems(), and InsensitiveItems() have been 
  105.   implemented. They now return lists of objects (GnObjectList *).
  106.   These lists are temporary and must be deleted by the programmer.
  107.  
  108. - The destructor for linked lists has been implemented.
  109.  
  110. - The function GnSelection::IsSelected() now works.
  111.  
  112. - One reason for application hangup when document read errors occur has been
  113.   fixed. However, applications may still hang after read errors.
  114.  
  115. - The class GnTopLevelToolDialogBox has been added. It is similar to the class
  116.   GnToolDialogBox, with the following exceptions:
  117.  
  118.     + It is separately iconifyable
  119.     + Children can not be added directly, instead the expression
  120.        tool_dialog->GetForm() must be used for the 'parent' argument.
  121.       In subclasses, this form widget could also be accessed by this->main_form.
  122.       Because the menu bar is also a child of this form widget, further 
  123.       children must be attached to the menu bar. Otherwise they might overlap
  124.       with the menu bar, possibly making it invisible. Example:
  125.  
  126.       button->setR_topAttachment(XmATTACH_WIDGET);
  127.       button->setR_topWidget(tool_dialog->GetForm());  // or, for subclasses:
  128.       button->setR_topWidget(main_form);
  129.  
  130.     + It is a subclass of GnTopLevelShell, whereas GnToolDialogBox is a
  131.       subclass of GnDialogShell. Therefore, the GnTopLevelShell resources must
  132.       be used (e.g. setR_title() instead of setR_dialogTitle()).
  133.  
  134.   A demo program can be found in ./sample/ibtestappl.C
  135.  
  136.  
  137.